// axios 二次封装
import axios from 'axios'
import store from '@/store'
import { Message } from 'element-ui'
import router from '@/router'
//配置基础地质
//配置接口超时
const service = axios.create({
  baseURL: '/api',
  timeout: 5000
})
const TimeOut = 3600

function isCheckTimeOut() {
  const currentTime = Date.now()
  const timeStamp = currentTime - store.getters.likedTime
  return timeStamp / 1000 > TimeOut
}

// 添加请求拦截器
service.interceptors.request.use(async function(config) {
  // 在发送请求之前做些什么
  if (store.getters.token) {
    if (isCheckTimeOut()) {
      await store.dispatch('user/logout') // 登出操作
      // 跳转到登录页
      router.push('/login')
      return Promise.reject(new Error('token超时了'))
    }
    config.headers.authorization = store.getters.token
  }
  return config
}, async function(error) {
  // 对请求错误做些什么
  console.log('error', error.response)
  if (error && error.response && error.response.status === 401) {
    // Message.error('token超时了')
    await store.dispatch('user/logout') // 登出action 删除token
    router.push('/login')
  } else {
    Message.error(error.message) // 提示错误信息
  }
  return Promise.reject(error)
})

// service.interceptors.response.use(response => {
//   console.log(response)
//   const { data } = response.data
//   return data
// }, error => {
//   return Promise.reject(error)
// })

export default service
